package scr 
{
	import flash.display.Bitmap;
	import flash.display.Loader;
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.events.IOErrorEvent;
	import flash.net.URLRequest;
	import flash.text.TextField;
	import flash.text.TextFormat;
	import ru.gosoplata.model.TmpModel;
	import uicontrols.ButtonBase;
	/**
	 * ...
	 * @author a.orleansky
	 */
	public class ScreenPay extends ScreenBase implements IScreen
	{
		private var _pic_count:Number;
		
		private var _tfBig:TextFormat = TmpModel.getTextFormat(50, 0x656565,true);
		private var _tfSmol:TextFormat = TmpModel.getTextFormat(20, 0x838383, true);
		
		private var pics_info:Array = new Array(new Array("head", TmpModel.IMG_FOLDER+"/vnesenie_deneznih_sredstv/images/head.png"),
												new Array("info", TmpModel.IMG_FOLDER+"/vnesenie_deneznih_sredstv/images/info.png"),
												new Array("plane_input", TmpModel.IMG_FOLDER+"/vnesenie_deneznih_sredstv/images/plane_input_money.png"),
												new Array("marker", TmpModel.IMG_FOLDER+"/vnesenie_deneznih_sredstv/images/marker.png"));
		
		private var curr_pic:Array;
		//public var marker:Bitmap;
		
		private var txtes:Array = new Array();
		
		private var terminal_summ_info:TextField = new TextField();	// Вносимая сумма должна быть            не менее
		private var input_summ_info:TextField = new TextField();	// amount
		
		private var commission_info:TextField = new TextField();	// Стоимость услуги 								/ 	Комиссия (ИТУ)
		private var user_summ_info:TextField = new TextField();		//													/	К зачислению на счет абонента
		private var coin_info:TextField = new TextField();			// Доступны к приему
		//private var com_info:TextField = new TextField();
		
		private var attentionImg:Bitmap = new Bitmap();

		private	var btn_back:ButtonBase = new ButtonBase("back", 0xFF0000);
		private	var btn_next:ButtonBase = new ButtonBase("pay", 0x00FF00);
		private	var btn_next1:ButtonBase = new ButtonBase("pay1", 0x00FF00);
		
		public function ScreenPay() 
		{
			super("pay");
			
			
			var txt:TextField = new TextField();
			var txt2:TextField = new TextField();
			
					
					txt.width = 1000;
					txt.embedFonts = true;
					txt.defaultTextFormat = _tfSmol;
					txt.x = 155;
					txt.y = 380 ;
					txt.selectable = false;
					txtes.push(txt);
					addChild(txt);
					
					var btmp:Bitmap = new Bitmap();
					btmp.x = 135;
					btmp.y = txt.y + 10;
					txtes.push(btmp);
					addChild(btmp);
					
					txt2.width = 520;
					txt2.embedFonts = true;
					txt2.defaultTextFormat = _tfSmol;
					txt2.multiline = true;
					txt2.x = 155;
					txt2.y = 416 ;
					txt2.selectable = false;
					txt2.name = "info_money_txt";
					addChild(txt2);
					
					var btmp2:Bitmap = new Bitmap();
					btmp2.name = "dot";
					btmp2.x = 135;
					btmp2.y = txt2.y+10;
					addChild(btmp2);
					
					var txt3:TextField = new TextField();
					txt3.width = 820;
					txt3.embedFonts = true;
					txt3.defaultTextFormat = _tfSmol;
					txt3.x = 155;
					txt3.y = 515;
					txt3.selectable = false;
					addChild(txt3);
					txtes.push(txt3);
					
					var btmp3:Bitmap = new Bitmap();
					btmp3.x = 135;
					btmp3.y = txt3.y+10;
					addChild(btmp3);
					txtes.push(btmp3);

					var txt4:TextField = new TextField();
					txt4.width = 820;
					txt4.embedFonts = true;
					txt4.defaultTextFormat = _tfSmol;
					txt4.htmlText = "Дождитесь, когда в поле «внесенная сумма»\n появится сумма внесенных Вами денег;";//"После внесения необходимой суммы, Вы можете воспользоваться одной \n или двумя кабинками, нажав соотвествующую кнопку.";//нажмите кнопку «Оплатить».";//"<FONT COLOR='#DB3F43' SIZE='30'>Сдача может быть выдана монетами (при их наличии в терминале), \nлибо использована на любую услугу предоставляемую терминалом;</FONT>";
					txt4.x = 155;
					txt4.y = 580;
					txt4.selectable = false;
					addChild(txt4);
					txtes.push(txt4);
					
					var btmp4:Bitmap = new Bitmap();
					btmp4.x = 135;
					btmp4.y = txt4.y+10;
					addChild(btmp4);
					txtes.push(btmp4);
		}
		
		override protected function init(e:Event):void 
		{
			super.init(e);
			
			initTextFormats();
			loadPictures();
			createBtns();
		}

		private function initTextFormats():void 
		{
			terminal_summ_info.x = 80;
			terminal_summ_info.y = 150;
			terminal_summ_info.embedFonts = true;
			terminal_summ_info.defaultTextFormat = _tfSmol;
			terminal_summ_info.selectable = false;
			terminal_summ_info.width = 1200;
			addChild(terminal_summ_info);
			
			commission_info.y = 340;
			commission_info.x = 320;
			commission_info.embedFonts = true;
			commission_info.defaultTextFormat = _tfSmol;
			commission_info.width = 800;
			commission_info.selectable = false;
			addChild(commission_info);
			
			//com_info.x = 750;
			//com_info.y = 350;
			//com_info.embedFonts = true;
			//com_info.defaultTextFormat = _tfSmol;
			//com_info.width = 500;
			//com_info.height = 400;
			//com_info.multiline = true;
			//com_info.selectable = false;
			//addChild(com_info);

			user_summ_info.x = 320;
			user_summ_info.y = 395;
			user_summ_info.embedFonts = true;
			user_summ_info.defaultTextFormat = _tfSmol;
			user_summ_info.width = 800;
			user_summ_info.selectable = false;
			addChild(user_summ_info);
			
			coin_info.x = 20;
			coin_info.y = 650;
			coin_info.embedFonts = true;
			coin_info.defaultTextFormat = TmpModel.getTextFormat(65, 0x656565,true);
			coin_info.multiline = true;
			coin_info.selectable = false;
			coin_info.width = 1260;
			coin_info.height = 300;
			coin_info.htmlText = "Доступны к приему <FONT COLOR='#DB3F43' SIZE='65'> монеты 10 руб. </FONT>\n      и купюры всех номиналов";//TODO: харкод детектед - есть же данные что примается от ехе приходит!!!!
			
			input_summ_info.x = 730;
			input_summ_info.y = 240;
			input_summ_info.embedFonts = true;
			input_summ_info.width = 320;
			input_summ_info.selectable = false;
			
			addChild(coin_info);
		}
		
		override public function reDraw():void
		{
					provider_logo.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, function(e:IOErrorEvent):void { } );
			provider_logo.load(new URLRequest(TmpModel.payment.provider.image));
			inputtxt.text = ""+ TmpModel.payment.accauntnumber;
			
			terminal_summ_info.htmlText = "<FONT COLOR='#DB3F43'>Внимание!</FONT> Вносимая сумма должна быть            не менее <FONT COLOR='#DB3F43' SIZE='40'>" + TmpModel.payment.minPay + "</FONT> руб.            не более <FONT COLOR='#DB3F43' SIZE='40'>" + TmpModel.MAX_SUM_TERM + "</FONT> руб.";
			//
			if (TmpModel.payment.fixPrice==0)
			{
				commission_info.htmlText = "Комиссия (ИТУ)";
				user_summ_info.visible = true;
				coin_info.visible = false;
				attentionImg.visible = true;
				
				(txtes[0] as TextField).text = "Вставьте купюры в купюроприемник;";
				(txtes[0] as TextField).y = 490;
				
				(getChildByName("info_money_txt") as TextField).text = "Дождитесь, когда в поле «внесенная сумма»\n появится сумма внесенных Вами денег;";
				(getChildByName("info_money_txt") as TextField).y = 470+70;
				
				(txtes[2] as TextField).text = "Если все правильно, нажмите кнопку «Оплатить».";
				(txtes[2] as TextField).y = 470+145;
				
				(txtes[4] as TextField).visible = false;
				(txtes[5] as Bitmap).visible = false;
			}else 
			{
				commission_info.htmlText = "Стоимость услуги................................................................. <FONT COLOR='#DB3F43' SIZE='40'>"+TmpModel.payment.fixPrice+" руб.</FONT>";
				
				user_summ_info.visible = false;
				coin_info.visible = true;
				
				attentionImg.visible = false;
				
				(txtes[0] as TextField).y = 400;
				(txtes[0] as TextField).htmlText = "<FONT COLOR='#DB3F43' SIZE='26'>Сдача может быть выдана монетами (при их наличии в терминале), \nлибо использована на любую услугу предоставляемую терминалом;</FONT>";//text = "Внесите денежные средства;";
				
				(getChildByName("info_money_txt") as TextField).text = "Внесите денежные средства;";
				(getChildByName("info_money_txt") as TextField).y = 480;
				
				(txtes[2] as TextField).htmlText = "После внесения необходимой суммы, Вы можете воспользоваться одной \n или двумя кабинками, нажав соотвествующую кнопку.";
				(txtes[2] as TextField).y = 520;
				
				(txtes[4] as TextField).visible = true;
				(txtes[5] as Bitmap).visible = true;
			}
				
			(txtes[1] as Bitmap).y = (txtes[0] as TextField).y +10;
			(getChildByName("dot") as Bitmap).y = (getChildByName("info_money_txt") as TextField).y +10;
			(txtes[3] as Bitmap).y = (txtes[2] as TextField).y+10;
				
			changeAmount();
		}
		
		private function createBtns():void 
		{
			_pic_count = 0;
			
			btn_back.addEventListener(ButtonBase.ON_PRESS_UI_BUTTON, pressBtn);
			btn_back.addEventListener(ButtonBase.ON_PIC_LOADED, allPicLoaded);
			addChild(btn_back);
			_pic_count++;
			
			btn_next.addEventListener(ButtonBase.ON_PRESS_UI_BUTTON, pressBtn);
			btn_next.addEventListener(ButtonBase.ON_PIC_LOADED, allPicLoaded);
			addChild(btn_next);
			_pic_count++;
			
			btn_next1.addEventListener(ButtonBase.ON_PRESS_UI_BUTTON, pressBtn);
			btn_next1.addEventListener(ButtonBase.ON_PIC_LOADED, allPicLoaded);
			addChild(btn_next1);
			_pic_count++;	
		}		
		
		private function loadPictures():void 
		{
			if (pics_info.length > 0)
			{
				curr_pic = (pics_info.pop() as Array);
				
				var loader:Loader = new Loader();
				loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoadComplete);
				loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, function(e:IOErrorEvent):void { } );
				loader.load(new URLRequest(curr_pic[1]));
			}
			reDraw();
		}
		
		private var inputtxt:TextField = new TextField();
		private var provider_logo:Loader = new Loader();
		public function placeImage(image:Bitmap):void 
		{
			var txt:TextField = new TextField();
			var txt2:TextField = new TextField();
			switch(curr_pic[0]) {
				case "head":
					var cont:Sprite = new Sprite();
					addChild(cont);
					
					cont.x = 50;
					cont.y = 10;
					
					cont.addChild(image);
					
					cont.addChild(provider_logo);
					
					var fmt:TextFormat = TmpModel.getTextFormat(50, 0xFFFFFF,true);
					fmt.letterSpacing = 5;
					inputtxt.embedFonts = true;
					inputtxt.defaultTextFormat = fmt;
					inputtxt.autoSize = 'left';
					cont.addChild(inputtxt);
					inputtxt.x = 220;
					inputtxt.y = 35;
					
					//txt.width = 700;
					//txt.embedFonts = true;
					//txt.defaultTextFormat = TmpModel.getTextFormat(34, 0xFFFFFF,true);
					//txt.text = "Внесение денежных средств";
					//txt.x = image.x+10;
					//txt.y = image.y+5;
					//addChild(txt);
					break;
				case "info":
					attentionImg.bitmapData = image.bitmapData;
					attentionImg.x = 690;
					attentionImg.y = 490;
					addChild(attentionImg);
					/*
					txt.width = 1000;
					txt.embedFonts = true;
					txt.defaultTextFormat = _tfSmol;
					txt.x = 155;
					txt.y = 380 ;
					txt.selectable = false;
					txtes.push(txt);
					addChild(txt);
					var btmp:Bitmap = new Bitmap(marker.bitmapData);
					btmp.x = 135;
					btmp.y = txt.y + 10;
					txtes.push(btmp);
					addChild(btmp);
					
					txt2.width = 520;
					txt2.embedFonts = true;
					txt2.defaultTextFormat = _tfSmol;
					txt2.multiline = true;
					txt2.x = 155;
					txt2.y = 416 ;
					txt2.selectable = false;
					txt2.name = "info_money_txt";
					addChild(txt2);
					var btmp2:Bitmap = new Bitmap(marker.bitmapData);
					btmp2.name = "dot";
					btmp2.x = 135;
					btmp2.y = txt2.y+10;
					addChild(btmp2);
					
					var txt3:TextField = new TextField();
					txt3.width = 820;
					txt3.embedFonts = true;
					txt3.defaultTextFormat = _tfSmol;
					txt3.x = 155;
					txt3.y = 515;
					txt3.selectable = false;
					addChild(txt3);
					txtes.push(txt3);
					var btmp3:Bitmap = new Bitmap(marker.bitmapData);
					btmp3.x = 135;
					btmp3.y = txt3.y+10;
					addChild(btmp3);
					txtes.push(btmp3);

					var txt4:TextField = new TextField();
					txt4.width = 820;
					txt4.embedFonts = true;
					txt4.defaultTextFormat = _tfSmol;
					txt4.htmlText = "Дождитесь, когда в поле «внесенная сумма»\n появится сумма внесенных Вами денег;";//"После внесения необходимой суммы, Вы можете воспользоваться одной \n или двумя кабинками, нажав соотвествующую кнопку.";//нажмите кнопку «Оплатить».";//"<FONT COLOR='#DB3F43' SIZE='30'>Сдача может быть выдана монетами (при их наличии в терминале), \nлибо использована на любую услугу предоставляемую терминалом;</FONT>";
					txt4.x = 155;
					txt4.y = 580;
					txt4.selectable = false;
					addChild(txt4);
					txtes.push(txt4);
					var btmp4:Bitmap = new Bitmap(marker.bitmapData);
					btmp4.x = 135;
					btmp4.y = txt4.y+10;
					addChild(btmp4);
					txtes.push(btmp4);
					*/
					break;
				case "plane_input":
					image.x = 50;
					image.y = 220;
					addChild(image);
					
					txt.width = 500;
					txt.embedFonts = true;
					txt.defaultTextFormat = _tfBig;
					txt.text = "Внесенная сумма";
					txt.x = image.x+20;
					txt.y = image.y + 20;
					txt.selectable = false;
					addChild(txt);
					
					txt2.width = 100;
					txt2.embedFonts = true;
					txt2.defaultTextFormat = _tfBig;
					txt2.htmlText = "<FONT SIZE='40'>руб.</FONT>";
					txt2.x = image.x+image.width - 140;
					txt2.y = image.y + 30;
					txt2.selectable = false;
					addChild(txt2);
					
					var fmt_input_summ:TextFormat = _tfBig;
					fmt_input_summ.align = "right";
					input_summ_info.defaultTextFormat = fmt_input_summ;
					addChild(input_summ_info);
					break;
				case "marker":
					//marker = new Bitmap(image.bitmapData);
					(txtes[1] as Bitmap).bitmapData = image.bitmapData;
					(txtes[3] as Bitmap).bitmapData = image.bitmapData;
					(txtes[5] as Bitmap).bitmapData = image.bitmapData;
					(getChildByName("dot") as Bitmap).bitmapData = image.bitmapData;
					break;
				default:
					image.x = 0;
					image.y = stage.stageHeight - image.height;
					addChild(image);
				break;
			}
			loadPictures();
		}
		
		public function changeAmount():void 
		{
			TmpModel.debugOutput.add("ScreenPay setCash:"+TmpModel.payment.amount+" fixPrice:"+TmpModel.payment.fixPrice+" minPay:"+TmpModel.payment.minPay+" amount:"+TmpModel.payment.amount)
			
			input_summ_info.text = TmpModel.payment.amount + '';
			
			if (TmpModel.payment.fixPrice==0)
			{
				user_summ_info.htmlText =  "К зачислению на счет абонента............................. <FONT COLOR='#DB3F43' SIZE='40'>" + (TmpModel.payment.forEnrollment) + " руб.</FONT>";
				commission_info.htmlText = "Комиссия (ИТУ)....................................................... <FONT COLOR='#DB3F43' SIZE='40'>" + TmpModel.payment.commission.toString() + "</FONT>";
			}
			
			btn_next.visible = (TmpModel.payment.amount > 0) 
			btn_back.visible = !btn_next.visible;
			if (TmpModel.payment.fixPrice > 0) 
			{
				btn_next1.visible = (TmpModel.payment.amount>=TmpModel.payment.minPay) ;
				btn_next.visible != btn_next1.visible;
			}else 
			{
				btn_next1.visible = false;
			}
		}
		
		private function onLoadComplete(e:Event):void 
		{
			var ldr:Loader = Loader(e.target.loader);
			var image:Bitmap = Bitmap(ldr.content);
			placeImage(image);
		}		
		
		private function allPicLoaded(e:Event):void 
		{
			_pic_count--;
			if (_pic_count == 0) 
			{
				btn_back.x = 20;
				btn_back.y = stage.stageHeight - (btn_back.height + 20);
				
				btn_next.x = stage.stageWidth - (btn_next.width + 60)
				btn_next.y = stage.stageHeight - (btn_next.height + 20);
				
				btn_next1.x = btn_next.x;
				btn_next1.y = btn_next.y;
			}
		}
		
		private function pressBtn(e:Event):void 
		{
			TmpModel.tmpGlobalController.controllerFinishPay();
		}
	}
}